package com.ksd.modules.members.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ksd.common.po.BatchIdsPO;
import com.ksd.commons.IBaseService;
import com.ksd.modules.members.entity.AdminUserBenefits;
import com.ksd.modules.members.po.AdminUserBenefitsSavePO;
import com.ksd.modules.members.po.AdminUserBenefitsSearchPO;
import com.ksd.modules.members.vo.AdminUserBenefitsVo;

import java.util.List;

/**
 * <p>
 * 平台up主用户 Mapper 接口
 * </p>
 *
 * @author Auto Generator
 * @since 2023-08-15
 */
public interface IAdminUserBenefitsService extends IBaseService<AdminUserBenefits> {


    /**
     * 查询所有数据
     */
    List<AdminUserBenefitsVo> findAllAdminUserBenefits();

    /**
     * 查询列表
     * @param adminUserBenefitsSearchPO
     * @return
     */
    Page<AdminUserBenefitsVo> findAdminUserBenefits(AdminUserBenefitsSearchPO adminUserBenefitsSearchPO);

    /**
     * 回收站
     * @param adminUserBenefitsSearchPO
     * @return
     */
    Page<AdminUserBenefitsVo> findAdminUserBenefitsRecyle(AdminUserBenefitsSearchPO adminUserBenefitsSearchPO);

    /**
     * 保存和更新
     * @param adminUserBenefitsSavePO
     * @return
     */
    AdminUserBenefitsVo saveUpdateAdminUserBenefits(AdminUserBenefitsSavePO adminUserBenefitsSavePO);

    /**
     * 根据id获取明细
     * @param id
     * @return
     */
    AdminUserBenefitsVo getAdminUserBenefitsById(Long id);

    /**
     * 单个逻辑删除
     * @param id
     * @return
     */
    Boolean deleteAdminUserBenefitsById(Long id);

    /**
     * 单个恢复
     * @param id
     * @return
     */
    Boolean recoverByIdAdminUserBenefits(Long id);

    /**
     * 单个物理删除
     * @return
     */
    Boolean removeAdminUserBenefitsById(Long id);

    /**
     * 批量逻辑删除
     * @param batchIdsPO
     * @return
     */
    Boolean bacthDeletesAdminUserBenefits(BatchIdsPO batchIdsPO);

    /**
     * 批量恢复
     * @param batchIdsPO
     * @return
     */
    Boolean batchRecoversAdminUserBenefits(BatchIdsPO batchIdsPO);

    /**
     * 批量物理删除
     * @param batchIdsPO
     * @return
     */
    Boolean batchRemovesAdminUserBenefits(BatchIdsPO batchIdsPO);


    /**
     * 修改状态
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatus(Long id,String column,Integer value);

    /**
     * 修改状态
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatusStr(Long id,String column,String value);

    /**
     * 批量上架
     *
     * @param batchIdsPO
     * @return
     */
    Boolean batchDowns(BatchIdsPO batchIdsPO);

    /**
     * 批量上架
     *
     * @param batchIdsPO
     * @return
     */
    Boolean batchUps(BatchIdsPO batchIdsPO);
}
